从Python中运行Excel VBA |
您所在的位置:网站首页 › python api调用vba命令 › 从Python中运行Excel VBA |
有时候,我们可能想要从Python运行Excel VBA宏,特别是当想要运行已有的Excel宏时,这很有用——甚至可以在不打开Excel文件的情况下执行这些VBA宏。 库 这里将使用py32win库进行演示。注意,要安装py32win库,在命令提示符下键入以下命令: pip install pywin32 然而,要在Python中导入该库,则其名字成为win32com.client: import win32com.client Excel VBA宏 下面是一个非常简单的Excel VBA宏,它接受一个参数,在工作表Sheet1的单元格B2中输入一条问候语。当然,可以创建任何宏并使用Python运行它。 Sub mymacro(name As String) Worksheets("Sheet1").Range("B2").Value = "你好," & name & "!" End Sub从Python中运行VBA宏 现在,将编写Python代码,从导入win32com.client开始,并实例化一个“xl”对象来表示Microsoft Excel应用程序。 然后,打开这个包含VBA宏的Excel文件,并将其赋给变量wb。 import win32com.client xl =win32com.client.Dispatch("Excel.Application") #实例化Excel应用程序 wb =xl.Workbooks.Open(r'D:\test\pythonrunvba.xlsm') xl.Application.Run('pythonrunvba.xlsm!模块1.mymacro("完美Excel")') wb.Save() xl.Application.Quit()为了调用VBA宏,使用了xl.Application.Run()方法,其中的参数指示要运行的宏: xl.Application.Run('pythonrunvba.xlsm!模块1.mymacro("完美Excel")') 其中: 1.pythonrunvba.xlsm!:包含VBA的文件,这里不需要包括完整路径。 2.模块1:包含宏的模块名。 3.mymacro("完美Excel"):宏名,注意到这里传递参数到VBA。 如果VBA宏不接受任何参数,只需包括宏名而无须括号,例如: xl.Application.Run('pythonrunvba.xlsm!模块1.mymacro') 接下来,使用wb.Save()保存这个Excel文件,也可以选择使用VBA代码来保存这个工作簿。 最后,不要忘了调用xl.Application.Quit()关闭Excel应用程序。让Excel应用程序在后台打开可能会在以后导致程序出现问题。 欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |